package com.exam.util;

import com.exam.entity.ApiResult;

/** 工具类
 * 通用响应结果
 */
public class ApiResultHandler {

    /** 请求成功 -【教师管理、学生管理模块的增删改查功能】
     * 将增删改查的返回值、响应码200、响应信息"请求成功"封装成对象并返回
     * @param object 增删改查的返回值
     * @return 封装所有响应数据的对象
     */
    public static ApiResult success(Object object) {
        ApiResult apiResult = new ApiResult();
        apiResult.setData(object);
        apiResult.setCode(200);
        apiResult.setMessage("请求成功");
        return apiResult;
    }

    /** 请求成功 -【删除管理员功能】
     * 仅将响应码200、响应信息"请求成功"封装成对象并返回，删除管理员无返回值
     * @return 封装所有响应数据的对象
     */
    public static ApiResult success() {
        return success(null);
    }

    /** 自定义请求结果 -【其他模块的增删改查等功能】
     * 将相应功能的返回结果、响应码、响应信息封装成对象并返回
     * @param code 响应码
     * @param message 响应信息
     * @param data 请求获取到的数据
     * @return 封装所有响应数据的对象
     * @param <T> 请求获取到的数据的类型
     */
    public static <T> ApiResult buildApiResult(Integer code, String message, T data) {
        ApiResult apiResult = new ApiResult();
        apiResult.setCode(code);
        apiResult.setMessage(message);
        apiResult.setData(data);
        return apiResult;
    }
}
